package com.dlc.shop.user.common.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dlc.shop.bean.app.dto.CouponDto;
import com.dlc.shop.user.common.model.Coupon;
import com.dlc.shop.user.common.model.UserLevelCoupon;

import java.util.List;
import java.util.Map;

/**
 *
 *
 * @author LGH
 * @date 2020-02-26 16:03:14
 */
public interface UserLevelCouponService extends IService<UserLevelCoupon> {

    /**
     * 批量插入等级优惠券关联信息
     * @param coupons 优惠券id列表
     * @param id 等级id
     */
    void insertBatchCoupon(Long[] coupons, Long id);

    /**
     * 批量删除等级优惠券关联信息
     * @param coupons 优惠券id列表
     * @param id 等级id
     */
    void delBatchCoupon(Long[] coupons, Long id);

    /**
     * 根据等级id，获取优惠券列表信息
     * @param id 等级id
     * @return 优惠券列表
     */
    List<Coupon> getCouponListByLevelId(Long id);

    /**
     * 获取会员等级对应的优惠卷及其用户领取信息
     * @param levelId
     * @param userId
     * @return
     */
    List<CouponDto> listCouponAndGetInfoByLevelId(Long levelId, String userId);

    /**
     * 获取优惠券关联的会员等级id
     * @param couponIds
     * @return
     */
    List<Long> listLevelIdByCouponIds(List<Long> couponIds);

    /***
     * 统计会员等级关联的优惠券数量
     * @param levelIds
     * @return
     */
    Map<Long, Integer> countLevelCouponNums(List<Long> levelIds);
}
